Welcome to my portfolio! In this portfolio, I put two of my tracks ‘ACIDITY’ and ‘GROOVEY’ in the mix to compare to the Computational Musicology 2025 corpus using Essentia features such as Approachability, Arousal, Danceability, Engaginess, Instrumentalness, Tempo and Valence.
The mission? Find out if my tracks are ready for the Rave Bunker?
Sit-tight and get ready to Dance!
I curated my tracks using generative AI tool Stable Audio. The prompts I used were based on two of my favorite artists: KI/KI and Marlon Hoffstadt.
KI/KI is known for her fast-paced energy fusing Trance, Acid and Techno into a hypnotic and emotional experience. In 2025, she became the first woman to win the Edison Award in the Dance Category, solidifying her significant influence in the Electronic Dance scene.
Marlon Hoffstadt, better known as DJ Daddy Trance, is a renowned DJ from the Techno Capital: Berlin, Germany. He is known for his dynamic and versatile approach to electronic music. His playful blend of trance, house, techno and Eurodance are the perfect ingredients for Groovey dance music.
For the ingredients to generate my tracks, I fed ChatGPT detailed information about both artists, including their signature tracks, genre and moods they evoke on the dancefloor. Based on their profiles, ChatGPT generated prompts that were tailored to Stable Audio. I kept fine-tuning the prompts until I got the results that felt rave-ready.
Prompt: Format: Band | Genre: Electronic | Subgenre: Trance, House, Progressive | Moods: Euphoric, Nostalgic, Uplifting, Dreamy, Flowing, Energetic, Melodic | BPM: 130-140 | Styles: 90s Rave, 2000s Trance Revival, Underground Club, Festival Sunset, Feel-Good, Peak-Time Grooves
Format: Band | Genre: Electronic | Subgenre: Acid Techno, Trance, Rave | Moods: Hypnotic, Intense, Euphoric, Dark, Underground, Nostalgic, High-Energy | BPM: 140-150 | Styles: 90s Techno Revival
| filename | approachability | arousal | danceability | engagingness | instrumentalness | tempo | valence | ai |
|---|---|---|---|---|---|---|---|---|
| acidity-desmond-l-1 | 0.2629817 | 4.478108 | 0.2859525 | 0.4156072 | 0.6434987 | 135 | 3.936315 | TRUE |
| groovey-desmond-l-2 | 0.2929443 | 5.076702 | 0.3010519 | 0.5524329 | 0.4989389 | 73 | 4.316221 | TRUE |
This graph explores the relationship between arousal and valence, with the danceability represented by the color.
My tracks, ACIDITY, GROOVEY score high in arousal and valence, meaning they are energetic and also emotionally positive. This aligns perfect with the sound of KI/KI and Marlon Hoffstadt.
This boxplot visualizes how my tracks ACIDITY and GROOVEY compare to the Class Corpus in terms of the features: Approachability, Arousal, Danceability, Engaginess, Instrumentalness, Tempo and Valence.
Approachability: Both tracks score above average in Approachability, suggesting that the tracks are accessible for everyone and easy to vibe with. This is perfect for a rave track!
Arousal: ACIDITY sits around the median, meaning that in terms of evoking emotions, it holds a moderate emotional impact compared to the other tracks. However, GROOVEY has a significant higher impact in emotion. This suggests that this track delivers a more intense and exciting experience on the dancefloor!
Danceability: Perhaps the most important factor for the rave bunker, danceability. Suprisingly, both of my tracks score low in terms to the Class Corpus, as they are just below the first quartile interval, according to the algorithm. Perhaps my tracks carry value in other features regarding the dancefloor, even though the algorithm does not classify it as danceable.
Instrumentalness: ACIDITY is between the median of the tracks and GROOVEY hovers under the first quartile. This is very interesting, because acid, trance and techno are usually more instrumental driven.
Tempo: A good rave track should have high tempo. ACIDITY being around the third quartile suggests that it has the perfect tempo for a ravetrack. On the other hand, GROOVEY scores very low in terms of Tempo, even though the suggested 140-150 BPM in the prompt.
Valence: ACIDITY hover near the median, suggesting a balanced emotional feeling. In contrast to GROOVEY which scores above average in Valence. This means that it evokes happy emotions, which makes sense considering the playful melodies and the inspiration of Eurodance.
Conclusion: ACIDITY delivers high tempo, a balanced valence rating, and strong approachability. It fits the classic acid-trance track. Energetic and Hypnotic, which is reflected in high tempo, moderate arousal and balanced valence.
GROOVEY in contrast, has high emotional impact and high energy despite the low tempo, it scores high on valence and arousal, making it a more euphoric track, elevating mood and playfulness.
These elements make both perfect rave-tracks, but perhaps not at the same time, in the same room.
The Keygram of ACIDITY shows four clear segments. Two segents from 0-55s together with 100-150s marking a darker region and 55-100s and 150-180s marking lighter regions. It appears that mainly keys around A minor and A major are consistent through the whole track. Suggesting that the track is mainly in A.
The Chordogram reveals that A minor and A major appear prominently again, just as the Keygram suggested. Again, we see the structures we observed in the keygram between 0-50s and 100-150s.
Between 60-100s, we observe mostly A major, A7, F# minor, D major and D7, aligned with A minor, F major, F7 and D minor. These chords also appear after 150s.
The Chromagram confirms our observations from the Keygram and Chordagram. As we thought, the track mainly appears in A, mainly in the regions between 55s-100s and after 150s. The same segments that we saw in both previous graphs. In the 0-55s and 110-150 segments we also observe occurences of F, C and E.
In this graph, we observe that this track is clearly divided in four segments. The first segment, has a stable intro that builds up. Then, We observe checkerboard patterns in the segments 55-100s and 150-180s, just as we observed before, these regions were mainly in A. Checkerboard patterns suggest that we have homogeneous patterns, therefore the motifs we hear in the track, are in A. Between 100-150s, we see horizontal and vertical lines, meaning it revisits what we heard in the first segment.
This Keygram is more evenly distributed across many keys. The only consistency in this track we observe is in A. It seems that there is no clear structure in this track according to the Keygram, as it seems consistent throughout the whole track.
Confirming our assumptions from the keygram, the chords around A major and A minor are the only consistent chords we observe. As we also saw before, it has a very continuous structure. Besides A, we also observe many different chords present across the whole track.
As we concluded before, there is a consistent bright pattern across A, making it the dominant pitch class. Also, there’s light but consistent use of G#, B, E, and D, adding harmonic color.
Comment:
This self-similarity matrix confirms our assumptions of our track being
very continuous, the graph has a very dense grid-like structure,
indicating a lot of repetition. This confirms that our track seems very
chaotic and all over the place, because there are no parts that occur
for a long time.
If we compare our tracks, ACIDITY has a more clear structure with A being the dominant Tonal center. Even though GROOVEY is A-rooted, it is more distributed across the track. The chords in our first track also seem structured in segments with concentrationg around certain keys, while in the second track it seems all over the place, with a wide range. To conclude our observations, ACIDITY delivers a more evolving journey with ‘chapters’ across the track, while GROOVEY throws away all structure, being very repetitive with lot of intensity and unpredictability, releasing a lot of energy on the dancefloor.
The track has big spike between 0-10s, the intro, followed by smaller ones till 25s. This suggests a strong intro to grab the listeners attention. Later, at 50s we have another spike of high energy, marking a transition. This aligns with the observations earlier, where we saw an segment from 0-50s and another segment starting at 50s. After this spike, we see a steady progression in energy, with another spike at around 110-120s, marking another transition. The last energy spike we observe is after 150s, confirming our four segment structure.
This track also begins with a large energy spike, followed by many micro-spikes, indicating a lot of variation in the track. Also, the energy spikes seem not that high and also more constant, indicating a lot of variation across the track. As the track progresses, we see larger micro spikes, suggesting that the song builds up in intensity over time. As we observed earlier, this track is rather consistent, does not really have structure and does not stand out in parts, which is clear after analyzing this graph. This consistency keeps the listener engaged, as it creates a driving and hypnotic energy.
The first track has higher peaks between parts in the song, indicating that we have more clear transitions. The second track has smaller peaks, but more constant and progressing peaks. This means that if we have to compare the tracks, the first track has more structure and the second track is more continuous and non-stop. Both tracks are ideal for rave settings, where the first track is more about evolving structures and the second track is more hypnotic.
At the lower region, the song has high spectral energy in the first 10 seconds, as we observed in the Energy Novelty function before. After this spike, it stagnates till a smaller peak around 60-70s. This Between 90s-150s we see a stable progression with another peak after 150 seconds. This confirms our four segment structure.
This spectral novelty function corresponds with our findings in the Cepstrogram. A local peak at the beginning, followed by another peak at 60 seconds. Continued by a consistent progression till we get another peak at around 160 seconds.
From the edges, we observe bright squares, showing that we have a similar timbre pattern across the track. Around 50-60s we see a notable change, marking a transition. Along 90-150s, we observe a big square, which indicates high similarity during that period. This indicates that we have stable timbre throughout that duration. After that segment, we see another square, indicating a different segment with another consistent timbre pattern.
As we expected from the other graphs, there are no notable changes across the track. This is also seen in this Cepstrogram. The coefficients remain relative uniform, meaning the spectral content has minimal changes. However, at 160-180s we see slightly brigher activity at the lower regions, suggesting a late climax.
This graph confirms our findings from the Cepstrogram. We see a relatively stable progression with high spectral activity towards the end.
The self-similarity matrix is almost uniformly dark with a big squared pattern, suggesting that the timbre is very consistent over time. We see small horizontal and vertical lines, indicating subtle changes, but mostly consistent. Towards the end we see a square that is isolated from the other big square, indicating the last climax at the outro.
From the graphs we can derive that ACIDITY is built with clear sections with transitional structure. In contrast to GROOVEY, which has a more flat and consistent timbral structure. Compared to ACIDITY, GROOVEY has higher, and more constant, frequency spikes but no structural shifts, keeping the energy high and progressive.
In the intro of the track, from 0-40s we observe a very unstable tempo, with alot of fluctuations ranging from 80 BPM to 160 BPM. After this segment, there is quite a stable trend from 50-150s at around 135 BPM. At 150s we see a slight bump from 135 BPM to 130 BPM, marking a transition for the outro. 5-10 seconds later the tempo stabilizes at 135 BPM again.
As expected, GROOVEY maintains a very stable tempo at 145 BPM throughout the whole track. The only disturbance occurs around the end of the track, around 160s we see a short, but very strong dip in BPM. The disruption marks the end of the track.
In terms of tempo, ACIDITY is divided in two structures with different temporal identity. The first section, 0-40s, has a messy structure, followed by a relatively stable tempo with only one brief disturbance. GROOVEY, on the other hand has a flat tempo with also one brief disturbance. The similarity the tracks share is that the tempo is similar, both in the same range of 135-145 BPM, and that they both share a tempo dip near the end of the track.
To build a model to classify which tracks are made by AI and which are human-made, we will train a K-Nearest Neighbor model (with 1 neighbor) using all features we have in the corpus. The features include: danceability, valence, arousal, engaginess, tempo, instrumentalness, and approachability. The performance of this model will be used as benchmark for future iterations to create the most optimal model for the classification task.
| Precision and Recall (KNN Baseline) | ||
| class | precision | recall |
|---|---|---|
| AI | 0.6603774 | 0.7142857 |
| Non-AI | 0.6216216 | 0.5609756 |
The heatmap returns the accuracy of our model, with True Positives on the Top-Left corner, True Negatives on the Bottom-Right corner, and False Positives/Negatives on the Top-Right and Bottom-Left corner respectively.
Precision tells us how many of the tracks the model labeled as as AI/Non-AI were actually correct, while Recall measures how many of the actual tracks from a class the model successfully identified.
Precision = Correct positives / All predicted Positives Recall = Correct positives / All actual positives
Using a Random Forest model, we can extract the importance of each feature contributing to our predictions. As observed, approachability, tempo and engaginess contribute the least to our predictions. With this information, we will re-train our model without these features to check if we can yield better results.
As an attempt to improve our model, we removed the least significant features from the base model. Our new feature set include: danceability, valence, arousal and instrumentalness.
Again, we will train a K-Nearest Neighbor model for our predictions.
| Precision and Recall (KNN Final) | ||
| class | precision | recall |
|---|---|---|
| AI | 0.6666667 | 0.6938776 |
| Non-AI | 0.6153846 | 0.5853659 |
We observe that our model has improved. The amount of False Positives in the AI class has gone down, and the Precision has improved. We also observe significant improvement in the Recall for the Non-AI class. Using the most predictive features yields better results in classifying our tracks if its AI-generated or human made.
After deep-diving into both tracks based on low-level features and high-level structures, we can safely assume that ACIDITY and GROOVEY each bring unique strengths to the Rave Bunker, each in their own way.
ACIDITY feels like a track that drags you into a journey, with an evolving structures with clear transitions. Built with shifts of high energy novelty, full of harmonic and timbre content building up to peak moments. The BPM of 135 combined with its foundation in A minor and major brings lot of emotional depth, ideal for the dancefloor.
GROOVEY is all about constant hypnotic repetition. It has a stable, yet high tempo which a progressive timbral and energy profile, built for an intense rave experience. Its high density and progressive structure keeps the ravers engaged without relying on high climatic moments.
We revisit the graph from the Introduction to analyze if there is any seperation between AI and Non-AI tracks in the same feature space. According to the graph, there is no strong seperation between the both classes, the points appear clustered around similar Aorusal and Valence values. Dancability seems also be spread out. However, for non-AI tracks with high valence/arousal values, it seems that they are quite dancable. Opposed to AI tracks, where there are high valence tracks with low dancability.